package com.small.nine.wxmp.domain.bean.wx;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

/**
 * 微信公众号菜单按钮
 *
 * @author sheng_zs@126.com
 * @date 2021-08-05 11:43
 */
@Data
@ToString
public class WxMenuButtonBean implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 不必须<br>
     * 二级菜单数组，个数应为1~5个
     */
    @JsonProperty("sub_button")
    @JsonAlias({"subButtons", "sub_button"})
    private List<WxMenuButtonBean> subButtons;

    /**
     * 必须<br>
     * 菜单的响应动作类型，view表示网页类型，click表示点击类型，miniprogram表示小程序类型
     */
    private String type;

    /**
     * 必须<br>
     * 菜单标题，不超过16个字节，子菜单不超过60个字节
     */
    private String name;

    /**
     * click等点击类型必须<br>
     * 菜单KEY值，用于消息接口推送，不超过128字节
     */
    private String key;

    /**
     * view、miniprogram类型必须<br>
     * 网页 链接，用户点击菜单可打开链接，不超过1024字节。 type为miniprogram时，不支持小程序的老版本客户端将打开本url。
     */
    private String url;

    /**
     * media_id类型和view_limited类型必须<br>
     * 调用新增永久素材接口返回的合法media_id
     */
    @JsonProperty("media_id")
    private String mediaId;

    /**
     * miniprogram类型必须<br>
     * 小程序的appid（仅认证公众号可配置）
     */
    @JsonProperty("appid")
    private String appId;

    /**
     * miniprogram类型必须<br>
     * 小程序的页面路径
     */
    @JsonProperty("pagepath")
    private String pagePath;
}
